home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet multimedia / Muzyka / Edytory sampli (probek dzwieku) / ZynAddSubFX_2.2.0 / Setup_ZynAddSubFX-2.2.0.exe / source code / Effects / EffectMgr.h < prev    next >
C/C++ Source or Header  |  2005-03-14  |  2KB  |  87 lines

  1. /*
  2.   ZynAddSubFX - a software synthesizer
  3.  
  4.   EffectMgr.h - Effect manager, an interface betwen the program and effects
  5.   Copyright (C) 2002-2005 Nasca Octavian Paul
  6.   Author: Nasca Octavian Paul
  7.  
  8.   This program is free software; you can redistribute it and/or modify
  9.   it under the terms of version 2 of the GNU General Public License 
  10.   as published by the Free Software Foundation.
  11.  
  12.   This program is distributed in the hope that it will be useful,
  13.   but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15.   GNU General Public License (version 2) for more details.
  16.  
  17.   You should have received a copy of the GNU General Public License (version 2)
  18.   along with this program; if not, write to the Free Software Foundation,
  19.   Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
  20.  
  21. */
  22.  
  23. #ifndef EFFECTMGR_H
  24. #define EFFECTMGR_H
  25.  
  26. #include <pthread.h>
  27.  
  28. #include "Effect.h"
  29. #include "Reverb.h"
  30. #include "Echo.h"
  31. #include "Chorus.h"
  32. #include "Phaser.h"
  33. #include "Alienwah.h"
  34. #include "Distorsion.h"
  35. #include "EQ.h"
  36. #include "DynamicFilter.h"
  37. #include "../Misc/XMLwrapper.h"
  38. #include "../Params/FilterParams.h"
  39. #include "../Params/Presets.h"
  40.  
  41.  
  42. class EffectMgr:public Presets{
  43.     public:
  44.     EffectMgr(int insertion_,pthread_mutex_t *mutex_);
  45.     ~EffectMgr();
  46.  
  47.     void add2XML(XMLwrapper *xml);
  48.     void defaults();
  49.     void getfromXML(XMLwrapper *xml);
  50.  
  51.     void out(REALTYPE *smpsl,REALTYPE *smpsr);
  52.  
  53.     void setdryonly(bool value);
  54.     
  55.     //get the output(to speakers) volume of the systemeffect
  56.     REALTYPE sysefxgetvolume();
  57.  
  58.     void cleanup();//cleanup the effect
  59.     
  60.     void changeeffect(int nefx_);
  61.     int geteffect();
  62.         void changepreset(unsigned char npreset);
  63.         void changepreset_nolock(unsigned char npreset);
  64.     unsigned char getpreset();
  65.     void seteffectpar(int npar,unsigned char value);
  66.     void seteffectpar_nolock(int npar,unsigned char value);//sets the effect par without thread lock
  67.     unsigned char geteffectpar(int npar);
  68.         int insertion;//1 if the effect is connected as insertion effect
  69.     REALTYPE *efxoutl,*efxoutr;
  70.  
  71.     //used by UI
  72.     REALTYPE getEQfreqresponse(REALTYPE freq);
  73.  
  74.     FilterParams *filterpars;
  75.     
  76.     private:
  77.     int nefx;
  78.     Effect *efx;
  79.     pthread_mutex_t *mutex;
  80.     bool dryonly;
  81. };
  82.  
  83. #endif
  84.  
  85.  
  86.  
  87.